1. Field of the Invention
This invention relates to a method and apparatus for providing feedback to a programmer of application errors encountered by users of the application such that the programmer is not inundated with duplicate error messages.
2. Description of Related Art
When writing software applications, computer programmers realize that their application may not run properly. To determine at what point in the program source code the application fails, error messages are incorporated into the source code. Prior to launching the software in the market place, the programmer attempts to de-bug the application as much as possible. Once the software has reached the end user, certain errors may occur much more frequently than anticipated or a program within the application may not run as smoothly as possible, amongst other problems.
However, the programmer may not be aware of the errors encountered by the countless number of end users. Simply notifying the programmer of a programming error can be difficult to manage. Particularly in the context of web based applications, e.g., web sites, homepages, a web site may potentially encounter thousands of users a day. If a system simply notified the programmer of an error, there would be innumerable identical error messages sent to the programmer. Thus, it would be beneficial to provide a way to filter the error messages to the programmer thereby providing only significant feedback to the programmer.
Bearing in mind the problems and deficiencies of the prior art, it is therefore an object of the present invention to provide a method and apparatus for providing only significant feedback to a programmer regarding programming errors encountered by the end user.
It is another object of the present invention to provide a method and apparatus for notifying a programmer of programming errors that are not related to application and user computer compatibility.
A further object of the invention is to provide a method and apparatus for providing only significant feedback to a programmer regarding programming errors in web based applications.
Still other objects and advantages of the invention will in part be obvious and will in part be apparent from the specification.
The above and other objects and advantages, which will be apparent to one of skill in the art, are achieved in the present invention which is directed to, in a first aspect, a method for notifying a programmer of an application error while running an application developed by the programmer, the application being stored on a user computer connected to a server on a network, the method comprising the steps of: (a) detecting an error while running an application; (b) determining whether the error has previously occurred while running the application; (c) sending an error message without user input to a server responsible for collecting error messages if the error has not previously occurred, the error message notifying the programmer of the application of the error; (d) receiving the error message by the server; (e) determining whether the error is recorded in a server error table stored on the server; and (f) sending an error message to the programmer if the error is not found on the server error table, the error message notifying the programmer of the error.
Preferably, the method may further include the step of creating a user error table and wherein step (b) further comprises determining whether the error has been recorded in the user error table. Upon determining that the error has been recorded in the user error table, the error message is not sent to the programmer. During step (e), if the error is recorded in the server error table, the error message is not sent to the programmer.
In another aspect, the present invention is directed to a method of notifying a programmer of an application error while a user is viewing a web application developed by the programmer on a user computer using a web browser linked to a server, the method comprising the steps of: (a) determining whether the web browser and the web application are compatible; (b) determining whether an error has previously occurred while viewing the web application; and (c) upon determining that the error has not previously occurred, sending an error message to the programmer via the server without user input to notify the programmer of the error. Preferably, in step (a), if the web browser and the web application are incompatible, an error message will not be generated. The method may further include the step of creating a user error table comprising a web application name, an error message, and an e-mail address for the programmer of the web application. Preferably, step (b) further includes the step of determining whether the error has been recorded in the user error table and, if the error has not been recorded, then continuing to step (c). Preferably, during step (c) the error message is sent to a server having a server error table for logging and filtering error messages.
The method may further include the step of determining whether the error message was previously recorded in the server error table, and if the error message is not recorded in the server error table, the error message is forwarded to the programmer. Conversely, if the error message is recorded in the server error table, the error message is not sent to the programmer. The method may further include the step of receiving an error message by the programmer regarding an application error wherein subsequent error messages have been filtered out by the user computer and the server such that duplicate error messages are not sent to the programmer. If there is no programmer indicated in the server program table, the error message may be sent to a server administrator or system programmer for the server. The method may further include the step of creating a server program table stored on the server comprising an application name and a programmer of the application.
In yet another aspect, the present invention is directed to a feedback system for alerting a programmer of an application error when a user is accessing a web application written by the programmer using a web browser, the system to perform the steps of: (a) determining whether an application error has previously occurred; (b) creating an error table stored on the user""s computer; (c) searching the error table for the application error; (d) sending an error message corresponding to the application error to a server which collects e-mail for the programmer if the application error is not found in the error table; (e) creating a server error table stored on the server which collects e-mail for the programmer; (f) searching the server error table for the error message corresponding to the application error; and (g) forwarding the error message corresponding to the application error to the programmer when the error message is not found in the server error table.
Preferably, step (b) comprises creating an error table comprising entries for the web application, an error number, an error message, and an e-mail address of the programmer. Preferably, step (e) comprises creating a server error table comprising entries for the web application, an error number, and an error message. Most preferably, in step (g) the error message has been filtered by the user computer and the server which collects e-mail for the programmer such that the programmer does not receive multiple error messages relating to a same application error encountered by numerous different users.
In yet another aspect, the present invention is directed to a web browser stored on a user computer for accessing and browsing web applications, the user computer having stored thereon a user error table which tracks errors that occur while browsing a web application, the web browser comprising means for determining whether a web application error has occurred; means for creating an entry in the user error table corresponding to the web application error; means for searching the user error table to determine whether the web application error exists in the user error table prior to notifying the programmer of the web application error; and means for sending an error message to a server which collects e-mail for the programmer to notify the programmer of the web application error, the server having a server error table and a means for searching the server error table for the error message such that the programmer does not receive multiple error messages related to the web application error if said web application error exists in said server error table.
In still yet another aspect, the present invention is directed to a server within a network of user computers, each user computer capable of accessing an application written by a programmer and stored on the server, the server capable of logging and filtering application error messages for sending to the programmer to notify the programmer of application errors, comprising means for creating a server error table, the server error table stored on a memory storage of the server; means for creating and writing to a user error table on a user computer, the user error table comprising entries corresponding to the application written by the programmer, an error message and an address of the server; means for determining whether an application error has occurred; means for determining whether,an entry for an application error exists in the user error table; means for sending an error message by the user computer to the server regarding the application error, the error message sent without input from a user of the user computer; means for receiving the error message; means for determining whether the error message exists in the server error table; and means for sending an e-mail to the programmer if the error message is absent from the server error table.
In a further aspect, the present invention is directed to a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for a method of notifying a programmer of an application error while running an application developed by the programmer, the application being stored on a user computer connected to a server on a network, the method steps comprising (a) detecting an error while running an application; (b) determining whether the error has previously occurred while running the application; (c) sending an error message without user input to a server responsible for collecting error messages if the error has not previously occurred, the error message notifying the programmer of the application of the error;(d) receiving the error message by the server; (e) determining whether the error is recorded in a server error table stored on a server; and (f) sending an error message to the programmer if the error is not found on the server error table, the error message notifying the programmer of the error.
In yet a further aspect, the present invention is directed to a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for a method of providing feedback to a programmer regarding application errors while an application is running on a user computer linked to a server or network, the method steps comprising (a) creating a user error table stored on the user computer, the user error table containing entries for the application name, an error number, an error message, and a programmer""s server e-mail address; (b) determining whether an application error has previously occurred by searching the user error table; (c) sending an e-mail to the programmer""s server with an error message corresponding to the application error without input from a user of the user computer, the programmer""s server having a server error table containing entries comprising an application name, an error number, and the error message; (d) receiving, by the programmer""s server, the e-mail sent from the user computer; (e) determining whether the error message exists in the server error table; and (f) sending an e-mail to the programmer only if the error message did not exist in the server error table to apprise the programmer of the application error.
In still yet a further aspect, the present invention is directed to a computer program product comprising a computer usable medium having computer readable program code means embedded therein for causing application errors to be logged and filtered for forwarding to a programmer of an application, the computer readable program code means in the computer program product comprising computer readable program code means for causing a computer to detect an error while running the application; computer readable program code means for causing a computer to determine whether the error has previously occurred while running the application; computer readable program code means for causing a computer to send an error message without input from a user of the application to a server responsible for collecting e-mail for the programmer if the error has not previously occurred, the error message notifying the programmer of the application of the error; computer readable program code means for causing a computer to receive the e-mail by the server; computer readable program code means for causing a computer to determine whether the error is recorded in a server error table stored on the server; and computer readable program code means for causing a computer to send an e-mail to the programmer if the error is not found on the server error table, the error message notifying the programmer of the error.
In a final aspect, the present invention is directed to a computer program product comprising a computer usable medium having computer readable program code means embedded therein for causing applications errors to be logged and filtered such that a programmer of an application obtains feedback regarding the application errors, the computer readable program code means in the computer program product comprising computer readable program code means for causing a computer to create a user error table stored on the user computer, the user error table containing entries for applications stored on the user computer, an error number, an error message, and a programmer""s server e-mail address; computer readable program code means for causing a computer to determine whether an application error has previously occurred by searching the user error table; computer readable program code means for causing a computer to send an e-mail to the programmer""s server with an error message corresponding to the application error without input from a user of the user computer, the programmer""s server having a server error table containing entries comprising an application name, an error number, and the error message; computer readable program code means for causing a computer to receive, by the programmer""s server, the e-mail sent from the user computer; computer readable program code means for causing a computer to determine whether the error message has been previously received by the programmer""s server; and computer readable program code means for causing a computer to send an e-mail to the programmer only if the error message was not previously received by the programmer""s server to apprise the programmer of the application error.